package com.ying.service.order;

import com.ying.core.page.PageData;
import com.ying.core.page.PageWrap;
import com.ying.po.order.Order;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface OrderService {

    Integer create(Order order);

    void deleteById(Integer id);

    void deleteByIdInBatch(List<Integer> ids);

    void updateById(Order order);

    void updateByIdInBatch(List<Order> orders);

    Map<String, Object> findById(Integer id);

    public List<Map<String, Object>> findByIdInBatch(List<Integer> ids);

    PageData<Map<String, Object>> findAllByPage(PageWrap pageWrap);

    Integer countAll(Integer userId, Integer year);

    List<Map<String, Object>> findAll(Integer userId);

//    PageData<Map<String, Object>> queryAllByPage(PageWrap<Order> pageWrap);

    void changeOrderStatus(Integer status, Integer orderId);

    PageData<Map<String, Object>> queryOrderByCondition(PageWrap<Order> pageWrap);

    List<BigDecimal> getPriceList(Integer userId);

    BigDecimal getNumberOfWeight(Integer userId, Integer year);

    Integer getNumberOfContainer(Integer userId, Integer year);

    BigDecimal getNumberOfMoney(Integer userId, Integer year);

    BigDecimal getOrderCompletion(Integer userId, Integer year);

    BigDecimal getOrderReBuyDegree(Integer userId);

    BigDecimal getOrderRebuyDegreeOfThisYear(Integer userId, Integer year);

    List<Map> getExpressDegree(Integer userId, Integer year);

    Map getNewAndOldBuyerCountThisYear(Integer userId, Integer year);

    Map<String, List> getChartData(Integer userId, Integer year);
}
